"""
给定数组nums，求最大的k，满足：nums存在2k的连续区间，前一半和后一半均严格升序
只有两种情况可能构成答案：
1. 两段连续的严格升序，长度较小的为候选答案
2. 一段严格升序，长度除以2为候选答案
挨个检查一下即可
"""
from typing import List
class Solution:
    def maxIncreasingSubarrays(self, nums: List[int]) -> int:
        n = len(nums)
        i = 0
        ans = []
        while True:
            o = 1
            while i + o < n and nums[i + o - 1] < nums[i + o]: o += 1
            ans.append(o)
            i += o
            if i == n: break
        ret = max(1, ans[0]//2)
        m = len(ans)
        for i in range(1, m):
            ret = max(ret, ans[i] // 2)
            ret = max(ret, min(ans[i - 1], ans[i]))
        return ret